package main

import (
	"fmt"
	"unsafe"
)

// 演示golang 中整数类型使用
func main() {

	var i int = 1
	fmt.Println("i=", i)

	//测试 int8 的范围  (-128,127)
	//var j int8 =-129  constant 128 overflows int8
	//var j int8 =128  constant 128 overflows int8
	var j int8 = 127
	fmt.Println(j)

	// 测试无符号的  uint8 范围(0,255)  不可以存储负数
	var q uint8 = 255
	fmt.Println(q)

	//范围(0,255)  不可以存储负数
	var b byte = 255
	fmt.Println(b)

	//整型的使用细节

	var n1 = 100
	fmt.Printf("n1 type:%T\n", n1)
	fmt.Printf("n1 value:%v\n", n1)

	//查看变量的数据类型 fmt.Printf() 格式化输出内容
	fmt.Printf("n1 typea:%T avalue:%v\n", n1, n1)

	//根据操作系统 推导 int36 int64
	fmt.Printf("%T %v\n", n1, n1)

	// 查看变量的字节大小

	var byteSize int64 = 123123
	//unsafe.Sizeof() 可以查看变量占用的字节数  不推荐
	fmt.Printf("byteSize 的类型 %T 字节数是 %d \n", byteSize, unsafe.Sizeof(byteSize))

	//golang 定义变量的范围 保小不保大
	var age byte = 150
	fmt.Println(age)

	//bit:计算机中的最小的存储单位 byte:计算机的基本存储单位 一个byte等于八个bit

}
